package com.atguigu.springboot.controller;

import com.atguigu.springboot.entities.User;
import com.atguigu.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpSession;
import java.util.Map;

@Controller
public class LoginController {
  @Autowired
    UserService userService;


    @PostMapping("/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password,
                        Map<String,Object> map, HttpSession session){
        User user;
        if((user=userService.getUser(username,password))!=null){
            //将用户名存到session域中，登录验证时会用到
            session.setAttribute("uid",user.getUid());
            //重定向到管理页面，使用重定向是为了用户刷新时，表单重复提交问题
            return "index";
        }else{
            //将错误信息存到map中，前台页面可展示
            map.put("msg","用户名密码错误");
            return "login";
        }
    }
    @PostMapping("/add")
    public String add(@RequestParam("username") String username,
                        @RequestParam("password") String password,
                        Map<String,Object> map, HttpSession session){
        User user=new User();
        user.setUname(username);
        user.setUpassword(password);
        int uid=1;
        if((uid=userService.addUser(user))>0){
            //将用户名存到session域中，登录验证时会用到
            session.setAttribute("uid",uid);
            //重定向到管理页面，使用重定向是为了用户刷新时，表单重复提交问题
            return "index";
        }else{
            //将错误信息存到map中，前台页面可展示
            map.put("msg","注册失败");
            return "login";
        }
    }
}
